home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Acorn RISC PD-CD 1
/
Acorn RISC PD-CD 1.iso
/
fractals
/
_tripatron
/
scroll3
< prev
Wrap
Text File
|
1992-01-03
|
8KB
|
58 lines
ô>SCROLL3ë13(max=1002+Þexit(max),exitbottom(max),exittop(max)<!Þexitright(max),exitleft(max)AÞexit2(max),exit3(max)PT%=&30000:code=&70000ZWSC=0:oldX=1:Y=2:XST=3:temp=4:SCEND=5:R=10:I=6:A=7:B=8:X=9:pixcnt=11:count=12:SC2=12dtable=12nãP=0 ¸ 2 ⇦2:P%=code:[OPT Px.initialiseŵMOV R2,#T%……MOV R0,#0:.L:MOV R3,R0,ASR#16:MUL R1,R3,R3:TST R1,#&E0000000:MOV R1,R1,ASR#13:MOV R1,R1,LSL#16:MOVNE R1,#&C0000000:STR R1,[R2,R0,LSR#14]„ADDS R0,R0,#&10000 BNE L:MOVS PC,R14ª.mandelbrot´\do pass1¾MOV table,#T%È.rowloopÒMOV X,oldXÜMOV pixcnt,#80:.dopixelæMOV R,X:MOV I,Yð]:ãI%=1 ¸ max:òiter(I%):íúãI%=1 ¸ max:òexit(I%):í
[OPT P.donerow$ADD Y,Y,XST,ASL#2:ADD SC,SC,#960"CMP SC,SCEND:BMI rowloop,MOVS PC,R146
.pass2@$ADD Y,Y,XST,ASL#1:ADD SC,SC,#640JMOV table,#T%T.rowloop2^MOV X,oldXhMOV pixcnt,#160:.dopixel2r%LDRB I,[SC]:TST I,#128:BNE skipit|1LDRB R,[SC,#-640]:€ R,R,#127:CMP R,I:BNE doitŷ0LDRB R,[SC,#640]:€ R,R,#127:CMP R,I:BNE doit‘/LDRB R,[SC,#-2]:€ R,R,#127:CMP R,I:BNE doitŒ0LDRB R,[SC,#2]:€ R,R,#127:CMP R,I:BEQ skipit¤ .doit®MOV R,X:MOV I,Y¸]:ãI%=1 ¸ max:òiter2(I%):íÂãI%=1 ¸ max:òexit2(I%):íÌ
[OPT PÖ.skipitàEADD SC,SC,#2:ADD X,X,XST,ASL#1:SUBS pixcnt,pixcnt,#1:BNE dopixel2ê.donerow2ô$ADD Y,Y,XST,ASL#1:ADD SC,SC,#320þCMP SC,SCEND:BMI rowloop2MOVS PC,R14
.pass3ADD Y,Y,XST:ADD SC,SC,#320&MOV table,#T%0.rowloop3:MOV X,oldXDMOV pixcnt,#320:.dopixel3N&LDRB I,[SC]:TST I,#128:BNE skipit2X2LDRB R,[SC,#-320]:€ R,R,#127:CMP R,I:BNE doit2b1LDRB R,[SC,#320]:€ R,R,#127:CMP R,I:BNE doit2l0LDRB R,[SC,#-1]:€ R,R,#127:CMP R,I:BNE doit2v1LDRB R,[SC,#1]:€ R,R,#127:CMP R,I:BEQ skipit2€
.doit2⇩MOV R,X:MOV I,Y“]:ãI%=1 ¸ max:òiter3(I%):ífiãI%=1 ¸ max:òexit3(I%):í¨
[OPT P².skipit2¼?ADD SC,SC,#1:ADD X,X,XST:SUBS pixcnt,pixcnt,#1:BNE dopixel3Æ.donerow3ÐADD Y,Y,XSTÚCMP SC,SCEND:BMI rowloop3äMOVS PC,R14î.clearupø4MOV 10,#127:☓R 10,10,10,ASL#8:☓R 10,10,10,ASL#16.clearloop8LDMIA (SC),{1-4}:€ 1,1,10:€ 2,2,10:€ 3,3,10:€ 4,4,100STMIA (SC)!,{1-4}:CMP SC,SCEND:BMI clearloop MOV PC,R14*.temp2 EQUD 04.scrollup>STR oldX,temp2:MOV 1,SCENDHADD SC2,SC,#320:.L9R*LDMIA (SC2)!,{4-11}:STMIA (SC)!,{4-11}\*LDMIA (SC2)!,{4-11}:STMIA (SC)!,{4-11}f*LDMIA (SC2)!,{4-11}:STMIA (SC)!,{4-11}p*LDMIA (SC2)!,{4-11}:STMIA (SC)!,{4-11}z*LDMIA (SC2)!,{4-11}:STMIA (SC)!,{4-11}☓*LDMIA (SC2)!,{4-11}:STMIA (SC)!,{4-11}‰*LDMIA (SC2)!,{4-11}:STMIA (SC)!,{4-11}—*LDMIA (SC2)!,{4-11}:STMIA (SC)!,{4-11}¢*LDMIA (SC2)!,{4-11}:STMIA (SC)!,{4-11}¬*LDMIA (SC2)!,{4-11}:STMIA (SC)!,{4-11}¶CMP SC2,1:BMI L9ÀLDR X,temp2ÊMOV table,#T%Ô%ADD Y,Y,XST,ASL#8:MOV pixcnt,#320Þ.dopixelbottomèQMOV R,X:MOV I,Y:]:ãI%=1 ¸ max:òiterbottom(I%):í:ãI%=1 ¸ max:òexitbottom(I%):íò
[OPT Pü.donerowbottom MOVS PC,R14 .temp3 EQUD 0 .scrolldown STR oldX,temp3:MOV 1,SC $ADD SC,SC,#81920 .SUB SC2,SC,#320:.L10 8*LDMDB (SC2)!,{4-11}:STMDB (SC)!,{4-11} B*LDMDB (SC2)!,{4-11}:STMDB (SC)!,{4-11} L*LDMDB (SC2)!,{4-11}:STMDB (SC)!,{4-11} V*LDMDB (SC2)!,{4-11}:STMDB (SC)!,{4-11} `*LDMDB (SC2)!,{4-11}:STMDB (SC)!,{4-11} j*LDMDB (SC2)!,{4-11}:STMDB (SC)!,{4-11} t*LDMDB (SC2)!,{4-11}:STMDB (SC)!,{4-11} ~*LDMDB (SC2)!,{4-11}:STMDB (SC)!,{4-11} ⇦*LDMDB (SC2)!,{4-11}:STMDB (SC)!,{4-11} ‹*LDMDB (SC2)!,{4-11}:STMDB (SC)!,{4-11} †CMP SC2,1:BNE L10 ¦SUB SC,SC,#320 °LDR X,temp3 ºMOV table,#T% ÄSUB Y,Y,XST:MOV pixcnt,#320 Î.dopixeltop ØKMOV R,X:MOV I,Y:]:ãI%=1 ¸ max:òitertop(I%):í:ãI%=1 ¸ max:òexittop(I%):í â
[OPT P ì.donerowtop MOVS PC,R14 ö.temp4 EQUD 0